package br.com.testeoab;

import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
import br.com.testeoab.dao.TesteOABHelper;
import br.com.testeoab.listView.ListViewAlternativas;
import br.com.testeoab.listView.ListViewPerguntas;
import br.com.testeoab.model.AlternativaCorreta;
import br.com.testeoab.model.Alternativas;
import br.com.testeoab.model.Perguntas;

public class MainActivity extends ListActivity {

	private TesteOABHelper dataSource = new TesteOABHelper(this);


	private Perguntas clsPergunta = new  Perguntas();
	private List<Perguntas> clsPerguntas = new ArrayList<Perguntas>();
	private List<Alternativas> clsAlternativas = new ArrayList<Alternativas>();
	private AlternativaCorreta clsAlternativaCorreta = new  AlternativaCorreta();

	private int intContadorPerguntas = 1;
	

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.perguntas);

		dataSource.open();

		
		carregaQuestao(intContadorPerguntas);
		
		
		getListView().setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adapter, View view, int pos,
					long id) {
				// TODO Auto-generated method stub
				if (clsAlternativaCorreta.getIntIdAlternativa() == pos){
					Toast.makeText(getApplicationContext(),"resposta certa",Toast.LENGTH_SHORT).show();
					intContadorPerguntas++;
					onResume(intContadorPerguntas);
				} else {
					Toast.makeText(getApplicationContext(),"resposta errada",Toast.LENGTH_SHORT).show();
				}
				
				
			}
		});

	}
	
	private void carregaQuestao(int intContadorPerguntas){
		
		if(intContadorPerguntas > 1){
			carregaNovaPergunta(intContadorPerguntas);
		}else {
			carregaPergunta(intContadorPerguntas);
		}
		
		carregaAlternativas(intContadorPerguntas);
		carregaAlternativaCorreta(intContadorPerguntas);
	}
	
	private void carregaPergunta(int intContadorPerguntas) {
		
		clsPergunta = new Perguntas();
		
		clsPergunta = dataSource.getPerguntaById(intContadorPerguntas);

		dataSource.close();
		clsPerguntas.add(clsPergunta);
		
		ListViewPerguntas header = new ListViewPerguntas(this, clsPerguntas);
		
		getListView().addHeaderView(header.getView(clsPergunta));
		//setListAdapter(new ListViewPerguntas(this, clsPerguntas));


	}
	private void carregaAlternativas(int intContadorPerguntas){
		clsAlternativas = new ArrayList<Alternativas>();
		
		clsAlternativas = dataSource.getAlternativasByPergunta(intContadorPerguntas);
		
		dataSource.close();
		
		setListAdapter(new ListViewAlternativas(this, clsAlternativas));
		
	}
	
	
	private AlternativaCorreta carregaAlternativaCorreta(int intContadorPerguntas){
		clsAlternativaCorreta = new AlternativaCorreta();
		
		clsAlternativaCorreta = dataSource.getAlternativaCorretaByPergunta(intContadorPerguntas);
		
		dataSource.close();
		
		return clsAlternativaCorreta;
	}
	
	protected void onResume(int intContadorPerguntas){
		super.onResume();
		
		carregaQuestao(intContadorPerguntas);
		
	}
	
	private void carregaNovaPergunta(int intContadorPerguntas) {
		
		clsPergunta = new Perguntas();
		
		clsPergunta = dataSource.getPerguntaById(intContadorPerguntas);

		dataSource.close();
		clsPerguntas.add(clsPergunta);
		
		ListViewPerguntas header = new ListViewPerguntas(this);
		
		//getListView().addHeaderView(header.getView(clsPergunta));
		
		setListAdapter(new ListViewPerguntas(this, clsPerguntas));
	}

}
